package jejunu.androboys.QuickCall.Component;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.util.Log;

public class FileController 
{
	Activity mAct;
	String[][] mSave_data;
	final String LIST_FILE_NAME="Text.txt";
	final String MODE_FILE_NAME="mode.txt";
	
	public FileController(Activity act) 
	{
		mAct=act;
	}
	
	public void saveListFile(String[][] save_data)
	{
		mSave_data=save_data;
		try
		{
			FileOutputStream fos= mAct.openFileOutput(LIST_FILE_NAME, mAct.MODE_PRIVATE);
			
			for(int i=0; i<mSave_data.length; i++)
			{
				
				for(int j=0; j<mSave_data[0].length; j++)
				{
					if(j<mSave_data[0].length-1)
					{
						String str=mSave_data[i][j]+",";
						fos.write(str.getBytes());
					}
					else
					{
						String str=mSave_data[i][j]+",/";
						fos.write(str.getBytes());
					}
				}
			}
			
			for(int i=0; i<mSave_data[0].length; i++)
			{
				Log.v("msave_data", mSave_data[0][i]+"");
			}
			
			fos.close();
		} 
		catch (FileNotFoundException e)	{
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public String[][] loadListFile()
	{
		String result = null;//결과값 초기화
    	
    	//로드할때 마다 정보를 초기화
    	String[][] saved_state=new String[8][3];
    	
    	for(int i=0; i<saved_state.length; i++)
    	{
    		for(int j=0; j<saved_state[0].length; j++)
    		{
    			saved_state[i][j]="null";
    		}
    	}
    	String[] temp=null;
//    	String[] tp = new String[3];
    	try 
    	{
			FileInputStream fis=mAct.openFileInput(LIST_FILE_NAME);//파일을 불러옴

			byte[] data=new byte[fis.available()];//사용가능한 바이트를 저장
			
			while(fis.read(data)!=-1)//데이터가 끝이 아닐때까지 읽어서 배열에 저장
			{
				
			}
			
			fis.close();
			
			result=new String(data);//읽어온 데이터를 문자열로 저장
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}
    	
    	if(result!=null)//읽어온 데이터가 존재한다면
    	{
    		temp=result.split("/");//,를 만나면 이전 문자를 잘라서 배열에 넣음
    		
    		for(int i=0; i<temp.length; i++)
        	{
        		String[] tp = temp[i].split(",");
        		for(int j=0; j<tp.length; j++)
        		{
        			saved_state[i][j] = tp[j];
        		}
        	}
    	} 
    	
    	
    	
    	for(int i=0; i<saved_state.length; i++)
    	{
    		for(int j=0; j<saved_state[0].length; j++)
    		{
    			Log.v("array", saved_state[i][j]+"");
    		}
    	}
    	
    	return saved_state;
	}
	
	public void saveModeFile(int sel_mode)
	{
		String sel=Integer.toString(sel_mode);
		
		try
		{
			FileOutputStream fos= mAct.openFileOutput(MODE_FILE_NAME, mAct.MODE_PRIVATE);
			
			fos.write(sel.getBytes());
			
			fos.close();
			
		} 
		catch (FileNotFoundException e)	{
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public int loadModeFile()
	{
		String result = "0";//기본 버튼모드
    	
    	try 
    	{
			FileInputStream fis=mAct.openFileInput(MODE_FILE_NAME);//파일을 불러옴

			byte[] data=new byte[fis.available()];//사용가능한 바이트를 저장
			
			while(fis.read(data)!=-1)//데이터가 끝이 아닐때까지 읽어서 배열에 저장
			{
				
			}
			
			fis.close();
			
			result=new String(data);//읽어온 데이터를 문자열로 저장
			
		} catch (FileNotFoundException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}
    	
    	return Integer.parseInt(result);
	}
}
